package com.xxxt.zpc.controller;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;

import com.alibaba.fastjson.JSONObject;
import com.xxxt.entity.Company;
import com.xxxt.utils.MailUtil;
import com.xxxt.utils.UUIDUtil;
import com.xxxt.zpc.service.CompanyService;



/**
 * 公司的增删改查
 */
@RequestMapping("company")
@Controller
public class CompanyController {
	
	@Autowired
	private CompanyService companyService;
	/*
	 * 获取公司列表
	 */
	@PostMapping("selectList")
	@ResponseBody
	public JSONObject selectCompanyList(){
		JSONObject json=new JSONObject();
		int status=-1;
		String message="网络延迟，请重试";
		List<Company> lista=new ArrayList<>();
		//List<String> list=new ArrayList<>();
		try{
			lista=companyService.selectComanyList();
		}catch(Exception e){
			e.printStackTrace();
			json.put("status", status);
			json.put("message", message);
			return json;
		}
		status=200;
		message="内容马上来";
		json.put("list", lista);
		json.put("status", status);
		json.put("message", message);
		return json;
	}
	/*
	 * 获取单个公司的信息
	 */
	@PostMapping("selectById")
	@ResponseBody
	public JSONObject selectCompanyById(String companyId){
		JSONObject json=new JSONObject();
		int status=-1;
		String message="网络延迟，请重试";
		Company company=new Company();
		
		try{
			company=companyService.queryCompanyByCompanyId(companyId);
		}catch(Exception e){
			json.put("status", status);
			json.put("message", message);
			return json;
		}
		if(company!=null){
			String[] img=companyService.selectCompanyImgById(companyId);
			status=200;
			message="内容马上来";
			json.put("img", img);
			json.put("company", company);
		}
		json.put("status", status);
		json.put("message", message);
		return json;
	}
	/*
	 * 添加单个公司信息
	 */
	@PostMapping("insert")
	@ResponseBody
	public JSONObject inserCompany(Company company){
		JSONObject json=new JSONObject();
		int status=-1;
		String message="添加失败，请重试";
		company.setCompanyId(UUIDUtil.getUUID());
		boolean result=false;
		boolean checkphone = MailUtil.checkphone(company.getPhone());
		boolean checkemail = MailUtil.checkemail(company.getEmail());
		if(!checkphone){
			message="号码格式错误";
			status=1;
			json.put("status", status);
			json.put("message", message);
			return json;
		}
		if(!checkemail){
			message="邮箱格式错误";
			status=2;
			json.put("status", status);
			json.put("message", message);
			return json;
		}
		if(company.getName()==null||company.getAddress()==null||company.getEmail()==null||company.getIntro()==null||company.getPhone()==null){
			message="信息需要填写完整";
			status=3;
			json.put("status", status);
			json.put("message", message);
			return json;
		}
		if (companyService.queryCompanyByCompanyName(company.getName())!=null) {
			status=4;
			json.put("status", status);
			message="已存在该公司";
			json.put("message", message);
			return json;
		}
		try{
			result=companyService.insertCompany(company);
		}catch(Exception e){
			e.printStackTrace();
			json.put("status", status);
			json.put("message", message);
			return json;
		}
		if(result){
			status=0;
			message="添加成功";
		}
		json.put("status", status);
		json.put("message", message);
		return json;
	}
	/*
	 * 修改公司信息
	 */
	@PostMapping("/updateCompany")
	@ResponseBody
	public JSONObject updateCompany(Company company){
		JSONObject json=new JSONObject();
		int status=-1;
		String message="修改失败，请重试";
		
		if(company.getAddress()==null&&company.getEmail()==null&&company.getIntro()==null&&company.getPhone()==null&&company.getName()==null){
			status=-1;
			message="请输入需要修改的值";
			json.put("status", status);
			json.put("message", message);
			return json;
		}
		boolean result=false;
		try{
			result=companyService.updateCompany(company);
		}catch(Exception e){
			e.printStackTrace();
		}
		if(result){
			status=200;
			message="修改成功";
			
		}
		json.put("status", status);
		json.put("message", message);
		return json;
	}
	/*
	 * 根据公司id获取公司图片
	 */
	@PostMapping("selectImgById")
	@ResponseBody
	public JSONObject selectCompanyImgById(String companyId){
		JSONObject json=new JSONObject();
		
		int status=-1;
		String message="当前公司还没有图片";
		String[] img=companyService.selectCompanyImgById(companyId);
		if(img!=null&&img.length>0){
			status=200;
			message="当前公司有"+img.length+"张图片";
			json.put("img", img);
			
		}
		json.put("status", status);
		json.put("message", message);
		return json;
	}
	/*
	 * 上传公司图片
	 */
	@PostMapping("uploadImg")
	@ResponseBody
	public JSONObject uploadImg(@RequestParam("file")MultipartFile[] file,HttpServletRequest request){
		JSONObject json=new JSONObject();
		
		String message="图片上传失败";
//		MultipartFile[] file={file1,file2,file3};
		String companyId = request.getParameter("companyId");
		int status=companyService.upload(file, companyId, request);
		if(status==0){
			message="图片上传成功";
		}else if(status==1){
			message="只能上传jpg,png,gif格式的图片";
		}else if(status==2){
			message="文件为空";
		}
		json.put("status", status);
		json.put("message", message);
		return json;
	}
	
	
	
	
	
	
	/*
	 * 批量导入公司信息,未完成
	 */
	@PostMapping("/insertcompanylist")
	@ResponseBody
	public JSONObject insertCompanyList(File file){
		JSONObject json=new JSONObject();
		String msg="读取Excel文件失败";
		
		json.put("msg", msg);
		return json;
	}
}
